* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}
ul {
    list-style: none;
}
header nav ul {
    display: flex;
    gap: 10px;
}
main {
    flex: 1 0;
    justify-self: stretch;
}
footer#footer {
    width: 100%;
    border: 1px solid red;
    text-align: center;
}